package main

import (
	v1 "SteedCensorShield/api/v1"
	"SteedCensorShield/config"
	"SteedCensorShield/pkg/utils"

	"github.com/gin-gonic/gin"
	"github.com/sirupsen/logrus"
)

func main() {
	// 初始化日志
	log := utils.SetupLogger()

	// 加载配置
	cfg, err := config.LoadConfig()
	if err != nil {
		log.WithError(err).Fatal("配置加载失败")
	}

	// 加载敏感词列表
	if err := utils.LoadSensitiveWords("data/filter.txt"); err != nil {
		log.WithError(err).Fatal("敏感词列表加载失败")
	}

	// 设置 Gin 模式
	gin.SetMode(gin.ReleaseMode)

	// 创建 Gin 路由
	router := gin.Default()

	// 设置日志中间件
	router.Use(utils.LoggerMiddleware(log))

	// 注册 API 路由
	v1.RegisterRoutes(router.Group("/api/v1"))

	// 打印所有注册的路由
	printRoutes(router, log)

	// 启动服务
	log.Infof("服务启动，端口：%s", cfg.Port)
	router.Run(":" + cfg.Port)
}

// printRoutes 遍历并打印所有注册的路由
func printRoutes(router *gin.Engine, log *logrus.Logger) {
	for _, routeInfo := range router.Routes() {
		log.Infof("Registered Route: %s - %s", routeInfo.Method, routeInfo.Path)
	}
}
